package Logica;

import java.io.*; import java.net.*; import java.awt.event.*; import Interfaz.*;

public class EnviaServidor implements Runnable {
    private ObjectOutputStream salida;
    private Socket conexion;

    public EnviaServidor(Socket conexion, final Servidor main, final PanelJuegoLAN panel) {
        this.conexion = conexion;
        main.jugar.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                if(main.jugar == event.getSource()){
                	main.addKeyListener(new KeyListener() {
						public void keyTyped(KeyEvent arg0) {}; public void keyReleased(KeyEvent arg0) {};
						public void keyPressed(KeyEvent arg0) {
							int KeyCode = arg0.getKeyCode();
							int posXJugador = panel.getPosXRaquetaJugador();
							int posXPelota = panel.getPosXPelota();
							int posYPelota = 648 - panel.getPosYPelota() - 49;
							int velYPelota = panel.getVelYPelota() * (-1);
							if (KeyCode == KeyEvent.VK_LEFT &&  posXJugador> 5) {
								posXJugador = panel.getPosXRaquetaJugador() -15;
								panel.setPosXRaquetaJugador(posXJugador);
								enviarDatos(posXJugador+"/"+posXPelota+"/"+posYPelota+"/"+velYPelota);
							}if (KeyCode == KeyEvent.VK_RIGHT && posXJugador < 475) {
								posXJugador = panel.getPosXRaquetaJugador() + 15;
								panel.setPosXRaquetaJugador(posXJugador);
								enviarDatos(posXJugador+"/"+posXPelota+"/"+posYPelota+"/"+velYPelota);
							}}});
                	main.add(panel);
                	main.validate();
                }}});
    }

    private void enviarDatos(String dato) {
        try {
            salida.writeObject(dato);
            salida.flush(); 
        }catch (IOException ioException) {};  
    } 
    
    public void run() {
        try {
            salida = new ObjectOutputStream(conexion.getOutputStream());
            salida.flush();
        } catch (IOException ex) {};
    }
}